package co.fitstart.admin.service;

import java.util.Date;
import java.util.List;

import com.demo2do.core.support.Page;

import co.fitstart.admin.entity.report.CourseScheduleCount;
import co.fitstart.admin.entity.search.SatisfactionSurveySearch;
import co.fitstart.entity.market.satisfaction.SatisfactionSurvey;
import co.fitstart.entity.site.Site;

/**
 * 
 * @author haiyan_xiao
 *
 */
public interface SatisfactionSurveyService {

    /**
     * 
     * @param search
     * @return
     */
    public List<CourseScheduleCount> listSatisfactionSurveySearch(SatisfactionSurveySearch search);

    /**
     * 
     * @param courseRoundIds
     */
    public void send(Long[] courseRoundIds);

    /**
     * 
     * @param site
     * @param complete
     * @param page
     * @return
     */
    public List<SatisfactionSurvey> list(Site site, Boolean complete, Page page);

    /**
     * 
     * @param sites
     * @param complete
     * @param page
     * @return
     */
    public List<SatisfactionSurvey> list(List<Site> sites, Boolean complete, Page page);
    /**
     * 
     * @param surveyId
     * @return
     */
    public SatisfactionSurvey load(Long surveyId);

    /**
     * 
     * @param site
     * @param begin
     * @param end
     * @return
     */
    public List<SatisfactionSurvey> listComplete(Site site, Date begin, Date end);

    /**
     * 
     * @param site
     * @param begin
     * @param end
     * @return
     */
    public List<SatisfactionSurvey> listUsedGiftCoupon(Site site, Date begin, Date end);

    /**
     * 
     * @param sites
     * @param begin
     * @param end
     * @return
     */
    public List<SatisfactionSurvey> listUsedGiftCoupon(List<Site> sites, Date begin, Date end);

    /**
     * 
     * @param couponCode
     * @return
     */
    public List<SatisfactionSurvey> list(String couponCode);
    /**
     * 
     * @return
     */
    public List<SatisfactionSurvey> list();
}
